上一篇我們已經理解了比特幣帳本(Bitcoin ledger)
的意義,不外乎就是透過所有礦工的聯合運算,記錄了每一筆比特幣交易的資訊而達成去中心化。且比特幣的產出正是給成功執行運算的礦工們的獎勵。
有!其實比特幣是有限量的!
為了保持比特幣總數不會無限增加,中本聰在設計規則時刻意插入了一個無窮等比級數的演算法,而大約每四年挖礦獎勵金就會減半,使得比特幣的總數只會有2100萬枚。目前被開採出來的比特幣約1900萬枚,只剩不到200萬枚可被開採。
總數方式計算如下圖:
要了解挖礦到底在算什麼之前,先讓我們聊聊比特幣的三大特性
讓我們從第一個特性開始吧!交易識別確認其實就是利用非對稱式加密
的原理來保證交易的真實性及不可否認性,那到底公鑰跟私鑰是什麼呢? 讓我來說明一下
對稱式加密
指的是訊息的傳送者與接收者共用同一組密鑰,如下圖舉例。傳送者A使用密鑰將原本看的懂的文字,加密成一般人無法識別的密文,接著將這個密文傳送給接收者B,而B可以使用相同的密鑰解密,把原本的密文重新解開成可以看懂的文章。
非對稱式加密
指的是每個使用者都擁有一對金鑰,分別為可以分享給任何人的公開金鑰(Public Key)
以及只能有自己知道的私密金鑰(Private Key)
。而非對稱式加密的邏輯也非常簡單,不管你是想要加密或是解密,都需要使用出自同一個人的一對金鑰pair
(公鑰與私鑰),可以是A的公鑰加密/A的私鑰解密、也可以是B的私鑰加密/B的公鑰解密,沒有一定。 可以參考以下圖片
看完上面的兩張圖後,不知道各位有沒有發現單向加密的一個問題?
假設A今天要傳訊息給B,理當是A使用B的公鑰加密後傳送給B,B再使用自己的私鑰解密。但駭客C是否也可以做同樣的事情,偽裝自己是A呢? 畢竟B的公鑰是公開的,你無法確認傳送者是否為A。這樣怎麼辦?
因此為了雙向的確保寄件人是A且收件者是B,我們需要把兩種方式結合,也就是加密時,A除了須使用B的公鑰加密外,也要使用自己的私鑰簽名加密,而B收到時則須使用自己的私鑰解密,再透過A的公鑰做二次驗證,確保寄件者就是A本人。
今天跟大家提到了比特幣的三大特性,並解釋了交易識別確認-公鑰私鑰的加密與解密,距離理解比特幣是怎麼運作的又更進一步,明天我們繼續來講區塊鏈的雜湊演算與結點資料同步!
<上一篇> [Day 3] 比特幣揭密! 背後的實際運作原理
<下一篇> [Day 5] 挖礦?比特幣運行的必需品(二)雜湊運算
參考資料: